home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / dlatrd.z / dlatrd
Text File  |  1996-03-14  |  7KB  |  199 lines

  1.  
  2.  
  3.  
  4. DDDDLLLLAAAATTTTRRRRDDDD((((3333FFFF))))                                                          DDDDLLLLAAAATTTTRRRRDDDD((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      DLATRD - reduce NB rows and columns of a real symmetric matrix A to
  10.      symmetric tridiagonal form by an orthogonal similarity transformation Q'
  11.      * A * Q, and returns the matrices V and W which are needed to apply the
  12.      transformation to the unreduced part of A
  13.  
  14. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  15.      SUBROUTINE DLATRD( UPLO, N, NB, A, LDA, E, TAU, W, LDW )
  16.  
  17.          CHARACTER      UPLO
  18.  
  19.          INTEGER        LDA, LDW, N, NB
  20.  
  21.          DOUBLE         PRECISION A( LDA, * ), E( * ), TAU( * ), W( LDW, * )
  22.  
  23. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  24.      DLATRD reduces NB rows and columns of a real symmetric matrix A to
  25.      symmetric tridiagonal form by an orthogonal similarity transformation Q'
  26.      * A * Q, and returns the matrices V and W which are needed to apply the
  27.      transformation to the unreduced part of A.
  28.  
  29.      If UPLO = 'U', DLATRD reduces the last NB rows and columns of a matrix,
  30.      of which the upper triangle is supplied;
  31.      if UPLO = 'L', DLATRD reduces the first NB rows and columns of a matrix,
  32.      of which the lower triangle is supplied.
  33.  
  34.      This is an auxiliary routine called by DSYTRD.
  35.  
  36.  
  37. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  38.      UPLO    (input) CHARACTER
  39.              Specifies whether the upper or lower triangular part of the
  40.              symmetric matrix A is stored:
  41.              = 'U': Upper triangular
  42.              = 'L': Lower triangular
  43.  
  44.      N       (input) INTEGER
  45.              The order of the matrix A.
  46.  
  47.      NB      (input) INTEGER
  48.              The number of rows and columns to be reduced.
  49.  
  50.      A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
  51.              On entry, the symmetric matrix A.  If UPLO = 'U', the leading n-
  52.              by-n upper triangular part of A contains the upper triangular
  53.              part of the matrix A, and the strictly lower triangular part of A
  54.              is not referenced.  If UPLO = 'L', the leading n-by-n lower
  55.              triangular part of A contains the lower triangular part of the
  56.              matrix A, and the strictly upper triangular part of A is not
  57.              referenced.  On exit:  if UPLO = 'U', the last NB columns have
  58.              been reduced to tridiagonal form, with the diagonal elements
  59.              overwriting the diagonal elements of A; the elements above the
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. DDDDLLLLAAAATTTTRRRRDDDD((((3333FFFF))))                                                          DDDDLLLLAAAATTTTRRRRDDDD((((3333FFFF))))
  71.  
  72.  
  73.  
  74.              diagonal with the array TAU, represent the orthogonal matrix Q as
  75.              a product of elementary reflectors; if UPLO = 'L', the first NB
  76.              columns have been reduced to tridiagonal form, with the diagonal
  77.              elements overwriting the diagonal elements of A; the elements
  78.              below the diagonal with the array TAU, represent the  orthogonal
  79.              matrix Q as a product of elementary reflectors.  See Further
  80.              Details.  LDA     (input) INTEGER The leading dimension of the
  81.              array A.  LDA >= (1,N).
  82.  
  83.      E       (output) DOUBLE PRECISION array, dimension (N-1)
  84.              If UPLO = 'U', E(n-nb:n-1) contains the superdiagonal elements of
  85.              the last NB columns of the reduced matrix; if UPLO = 'L', E(1:nb)
  86.              contains the subdiagonal elements of the first NB columns of the
  87.              reduced matrix.
  88.  
  89.      TAU     (output) DOUBLE PRECISION array, dimension (N-1)
  90.              The scalar factors of the elementary reflectors, stored in
  91.              TAU(n-nb:n-1) if UPLO = 'U', and in TAU(1:nb) if UPLO = 'L'.  See
  92.              Further Details.  W       (output) DOUBLE PRECISION array,
  93.              dimension (LDW,NB) The n-by-nb matrix W required to update the
  94.              unreduced part of A.
  95.  
  96.      LDW     (input) INTEGER
  97.              The leading dimension of the array W. LDW >= max(1,N).
  98.  
  99. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  100.      If UPLO = 'U', the matrix Q is represented as a product of elementary
  101.      reflectors
  102.  
  103.         Q = H(n) H(n-1) . . . H(n-nb+1).
  104.  
  105.      Each H(i) has the form
  106.  
  107.         H(i) = I - tau * v * v'
  108.  
  109.      where tau is a real scalar, and v is a real vector with
  110.      v(i:n) = 0 and v(i-1) = 1; v(1:i-1) is stored on exit in A(1:i-1,i), and
  111.      tau in TAU(i-1).
  112.  
  113.      If UPLO = 'L', the matrix Q is represented as a product of elementary
  114.      reflectors
  115.  
  116.         Q = H(1) H(2) . . . H(nb).
  117.  
  118.      Each H(i) has the form
  119.  
  120.         H(i) = I - tau * v * v'
  121.  
  122.      where tau is a real scalar, and v is a real vector with
  123.      v(1:i) = 0 and v(i+1) = 1; v(i+1:n) is stored on exit in A(i+1:n,i), and
  124.      tau in TAU(i).
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. DDDDLLLLAAAATTTTRRRRDDDD((((3333FFFF))))                                                          DDDDLLLLAAAATTTTRRRRDDDD((((3333FFFF))))
  137.  
  138.  
  139.  
  140.      The elements of the vectors v together form the n-by-nb matrix V which is
  141.      needed, with W, to apply the transformation to the unreduced part of the
  142.      matrix, using a symmetric rank-2k update of the form:  A := A - V*W' -
  143.      W*V'.
  144.  
  145.      The contents of A on exit are illustrated by the following examples with
  146.      n = 5 and nb = 2:
  147.  
  148.      if UPLO = 'U':                       if UPLO = 'L':
  149.  
  150.        (  a   a   a   v4  v5 )              (  d                  )
  151.        (      a   a   v4  v5 )              (  1   d              )
  152.        (          a   1   v5 )              (  v1  1   a          )
  153.        (              d   1  )              (  v1  v2  a   a      )
  154.        (                  d  )              (  v1  v2  a   a   a  )
  155.  
  156.      where d denotes a diagonal element of the reduced matrix, a denotes an
  157.      element of the original matrix that is unchanged, and vi denotes an
  158.      element of the vector defining H(i).
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.